#pragma once
#include"common.h"

class SHM_prob :public problem {
public:
	SHM_prob(vec& ori) : problem(ori) {}
	vec func(vec input);
};

class euler_solver :public solver {
public:
	euler_solver(shared_ptr<problem> prob, float h) : solver(prob, h) {}
	void update();
};

class adv_euler_solver : public solver {
public:
	adv_euler_solver(shared_ptr<problem> prob, float h) : solver(prob, h) {};
	void update();
};

class rk4_solver :public solver {
public:
	rk4_solver(shared_ptr<problem> prob, float h) : solver(prob, h) {};
	void update();
};

